#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Result/Optimization/OptimizationBase.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct GPFORCEResponseData : public OptimizationBase {
  SG::DataStructure::Common::Id m_IRID =
      0;  ///< Internal response identification number
  SG::DataStructure::Common::Id m_RID =
      0;                  ///< External response identification number
  char m_LABEL[8] = {0};  ///< Label
  SG::DataStructure::Common::I64 m_GPFCOMP = 0;  ///< Grid point force component
  SG::DataStructure::Common::Id m_GPFEID = 0;    ///< EID of GPFO
  SG::DataStructure::Common::Id m_GPFGID = 0;    ///< GID of GPFO
  SG::DataStructure::Common::Real m_RESPONSE = 0.0;  ///< Response value
  SG::DataStructure::Common::Id m_domainId = 0;      ///< Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator==(const GPFORCEResponseData& val1,
                         const GPFORCEResponseData& val2);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
